package com.demo2do.fms.admin.entity.vam;

import java.util.Date;

import com.demo2do.fms.entity.vehicle.tractor.Tractor;
import com.demo2do.fms.entity.vehicle.trailer.Trailer;

/**
 *
 * @author Ark
 *
 */
public class VehicleStatusStat {

    /** 
     * 资产类别
     *  tractor - 牵引车
     *  trailer - 挂车
     */
    private String type;
    
    /** VAM车辆id */
    private Long vehicleId;
    
    /** 车辆中文车牌号 */
    private String brandCnCode;
    
    /** 审核状态 */
    private String status;
    
    /** 引入申报状态 */
    private String declareStatus;
    
    /** 驳回理由 */
    private String rejectReason;
    
    /** 更新时间 */
    private Date updateTime;
    
    /**
     * The default constructor
     */
    public VehicleStatusStat() {
    }
    
    /**
     * @param tractor
     */
    public VehicleStatusStat(Tractor tractor) {
        this.type = "tractor";
        this.vehicleId = tractor.getVamId();
        this.brandCnCode = tractor.getBrandCNCode();
        this.status = tractor.getStatus().name();
        this.declareStatus = tractor.getDeclareStatus().name();
        this.rejectReason = tractor.getRejectReason();
        this.updateTime = new Date();
    }

    /**
     * @param trailer
     */
    public VehicleStatusStat(Trailer trailer) {
        this.type = "trailer";
        this.vehicleId = trailer.getVamId();
        this.brandCnCode = trailer.getBrandCNCode();
        this.status = trailer.getStatus().name();
        this.declareStatus = trailer.getDeclareStatus().name();
        this.rejectReason = trailer.getRejectReason();
        this.updateTime = new Date();
    }
    
    /**
     * @return the type
     */
    public String getType() {
        return type;
    }

    /**
     * @return the vehicleId
     */
    public Long getVehicleId() {
        return vehicleId;
    }

    /**
     * @return
     */
    public String getBrandCnCode() {
        return brandCnCode;
    }

    /**
     * @return the status
     */
    public String getStatus() {
        return status;
    }
    
    /**
     * @return
     */
    public String getDeclareStatus() {
        return declareStatus;
    }
    
    /**
     * @return
     */
    public String getRejectReason() {
        return rejectReason;
    }

    /**
     * @return the updateTime
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * @param type the type to set
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * @param vehicleId the vehicleId to set
     */
    public void setVehicleId(Long vehicleId) {
        this.vehicleId = vehicleId;
    }

    /**
     * @param brandCnCode
     */
    public void setBrandCnCode(String brandCnCode) {
        this.brandCnCode = brandCnCode;
    }
    
    /**
     * @param status the status to set
     */
    public void setStatus(String status) {
        this.status = status;
    }
    
    /**
     * @param declareStatus
     */
    public void setDeclareStatus(String declareStatus) {
        this.declareStatus = declareStatus;
    }
    
    /**
     * @param rejectReason
     */
    public void setRejectReason(String rejectReason) {
        this.rejectReason = rejectReason;
    }

    /**
     * @param updateTime the updateTime to set
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
}
